home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2001 May / SGI IRIX Base Documentation 2001 May.iso / usr / share / catman / a_man / cat1 / gendist.z / gendist
Encoding:
Text File  |  2001-04-17  |  30.7 KB  |  661 lines

  1.  
  2.  
  3.  
  4. ggggeeeennnnddddiiiisssstttt((((1111MMMM))))                                                        ggggeeeennnnddddiiiisssstttt((((1111MMMM))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      gendist - generate a software distribution
  10.  
  11. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.      ggggeeeennnnddddiiiisssstttt [[[[ ----rrrrbbbbaaaasssseeee _r_b_a_s_e ] [ ----rrrrooooooootttt _r_b_a_s_e ] [ ----ssssbbbbaaaasssseeee _s_b_a_s_e ]
  13.           [ ----ssssoooouuuurrrrcccceeee _s_b_a_s_e ] [ ----iiiiddddbbbb _i_d_b_f_i_l_e ] [ ----ssssppppeeeecccc _s_p_e_c_f_i_l_e ]
  14.           [ ----ddddiiiisssstttt _d_i_s_t_d_i_r ] [ ----mmmmrrrr _f_i_l_e ] [ ----ssssaaaa _f_i_l_e ]
  15.           [ ----ccccrrrreeeeaaaattttoooorrrr _n_a_m_e  ] [ ----vvvveeeerrrrbbbboooosssseeee ] [ ----mmmmaaaaiiiinnnntttt ]
  16.           [ ----nnnnooooccccoooommmmpppprrrreeeessssssss ] [ ----nnnnoooossssttttrrrriiiipppp ] [ ----ggggeeeennnniiiiddddbbbb ]
  17.           [ ----ggggeeeennnnssssppppeeeecccc ] [ ----aaaallllllll ] [ ----iiiiggggnnnnoooorrrreeeeeeeemmmmppppttttyyyy ] [ _p_a_t_t_e_r_n_s ... ]
  18.  
  19. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  20.      _G_e_n_d_i_s_t generates the primary components for software products.  These
  21.      are the product descriptor, the product idb, and the images.  The
  22.      required input is a tree containing all of the files to be shipped, a
  23.      master idb containing a description of each file or directory to be
  24.      included in the product, and a distribution specification (spec) file
  25.      that describes the product structure.
  26.  
  27.      _G_e_n_d_i_s_t reads the distribution specification file and generates products
  28.      as defined in that file.  For each product, the product descriptor file
  29.      is created with the name _p_r_o_d (for example), then the product idb is
  30.      generated with the name _p_r_o_d....iiiiddddbbbb, and then the images with the name
  31.      _p_r_o_d....iiiimmmmaaaaggggeeee for each _i_m_a_g_e defined in the distribution specification file.
  32.  
  33.      Normally, all components of all products defined in the _s_p_e_c_f_i_l_e are
  34.      generated.  The optional _p_a_t_t_e_r_n_s at the end of the command line are
  35.      shell-style patterns that identify particular files to be generated.
  36.      Note that these patterns are matched against the name to be created, not
  37.      against existing files on the disk.  Such patterns should be protected
  38.      from the shell expansion mechanisms.  For example, to generate all of the
  39.      components of the _f_t_n product, use:
  40.  
  41.           gendist ... "ftn*"
  42.  
  43.      Files are created in the _d_i_s_t_d_i_r, which is ``$rbase/usr/dist'' by
  44.      default.
  45.  
  46.      Options:
  47.  
  48.      ----rrrrbbbbaaaasssseeee _r_b_a_s_e
  49.  
  50.      ----rrrrooooooootttt _r_b_a_s_e
  51.                Set the ``root base,'' which is the pathname of the top of the
  52.                destination tree.  The default _r_b_a_s_e is /root, overridden by
  53.                the environment variable rbase.
  54.  
  55.      ----ssssbbbbaaaasssseeee _s_b_a_s_e
  56.  
  57.      ----ssssoooouuuurrrrcccceeee _s_b_a_s_e
  58.                Set the ``source base,'' which is the pathname of the top of
  59.                the source (or build) tree.  The default _s_b_a_s_e is /usr/src,
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. ggggeeeennnnddddiiiisssstttt((((1111MMMM))))                                                        ggggeeeennnnddddiiiisssstttt((((1111MMMM))))
  71.  
  72.  
  73.  
  74.                overridden by the environment variable sbase.
  75.  
  76.      ----iiiiddddbbbb _i_d_b_f_i_l_e
  77.                Set the pathname of the idb.  The default is $rbase/etc/idb,
  78.                overridden by the environment variable idb.  The idbfile must
  79.                be sorted on the 5th and 6th fields.
  80.  
  81.      ----ssssppppeeeecccc _s_p_e_c_f_i_l_e
  82.                Set the pathname of the spec file.  The default is
  83.                $rbase/etc/spec.
  84.  
  85.      ----ddddiiiisssstttt _d_i_s_t_d_i_r
  86.                Create the product components in _d_i_s_t_d_i_r.  The default is
  87.                $rbase/usr/dist, overridden by the environment variable dist.
  88.  
  89.      ----ssssaaaa _s_a_f_i_l_e
  90.                Set the pathname of _s_a_f_i_l_e.  The default is sa.
  91.  
  92.      ----mmmmrrrr _m_r_f_i_l_e
  93.                Set the pathname of the _m_r_f_i_l_e.  The default is mr.
  94.  
  95.      ----ccccrrrreeeeaaaattttoooorrrr _n_a_m_e
  96.                Set the "created by" field in the product to _n_a_m_e.
  97.  
  98.      ----vvvveeeerrrrbbbboooosssseeee  Work verbosely, with more output as the distribution is
  99.                created.
  100.  
  101.      ----nnnnooooccccoooommmmpppprrrreeeessssssss
  102.                Do not compress the images being built.
  103.  
  104.      ----nnnnoooossssttttrrrriiiipppp  Do not strip any of the executables.
  105.  
  106.      ----mmmmaaaaiiiinnnntttt    Generate maintenance product.
  107.  
  108.      ----ggggeeeennnniiiiddddbbbb   Generate an idb from the rbase tree to $rbase/etc/idb.
  109.  
  110.      ----ggggeeeennnnssssppppeeeecccc  Generate a simple spec file to $rbase/etc/spec.
  111.  
  112.      ----aaaallllllll      Generate the product distribution as well as the spec file and
  113.                the idb file.
  114.  
  115.      ----iiiiggggnnnnoooorrrreeeeeeeemmmmppppttttyyyy
  116.                Do not add empty subsystems to the image and do not emit a
  117.                warning message.
  118.  
  119.      There is a predefined sequence for building and installing software
  120.      releases, one part of which is to use _g_e_n_d_i_s_t to generate the software
  121.      images.  Before and after using _g_e_n_d_i_s_t, there are other commands to use.
  122.      The simplified sequence of events is:
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. ggggeeeennnnddddiiiisssstttt((((1111MMMM))))                                                        ggggeeeennnnddddiiiisssstttt((((1111MMMM))))
  137.  
  138.  
  139.  
  140.      1. Build the software with ``make install'' and the environment variable
  141.         RAWIDB set.
  142.      2. Sort the idb file with ``sort +4u -6 <$RAWIDB >idb''.
  143.      3. Use _g_e_n_d_i_s_t on idb file (created in step 2) and spec file; output
  144.         includes images.
  145.      4. Use _d_i_s_t_c_p to copy images to other places.
  146.      5. Use _i_n_s_t to install the images.
  147.  
  148. DDDDIIIISSSSTTTTRRRRIIIIBBBBUUUUTTTTIIIIOOOONNNN SSSSPPPPEEEECCCCIIIIFFFFIIIICCCCAAAATTTTIIIIOOOONNNN
  149.      The distribution spec file is a text description of the product, image
  150.      and subsystem hierarchy, in the following form:
  151.  
  152.           include file
  153.           define variable value
  154.  
  155.           product pp
  156.               attribute ...
  157.               image ii
  158.                   attribute ...
  159.                   subsystem ss
  160.                       attribute ...
  161.                   endsubsys
  162.               endimage
  163.           endproduct
  164.  
  165.      Products may contain multiple images.  Images may contain multiple
  166.      subsystems.  Attributes apply to the nearest enclosing product, image or
  167.      subsystem (see descriptions below).  When specifying an attribute's
  168.      value(s), use double-quotes to protect whitespace, and single-quotes to
  169.      prevent expansion of ${variables}.
  170.  
  171.      In the attribute descriptions that follow, a ssssuuuubbbbssssyyyysssstttteeeemmmm----rrrraaaannnnggggeeee is a three-
  172.      part product.image.subsystem identifier, followed by a low version number
  173.      and a high version number, all separated by whitespace.  Except within a
  174.      rrrreeeeppppllllaaaacccceeeessss statement (see below) the keyword mmmmaaaaxxxxiiiinnnntttt may be used to indicate
  175.      the highest possible version number.  For example:
  176.  
  177.           x.y.z 1000 2000
  178.           x.y.z 1 maxint
  179.           x.books.eoe 2000 2000
  180.  
  181.      The following attributes may be used.
  182.  
  183.      iiiidddd """"_i_d-_s_t_r_i_n_g""""
  184.           A one-line description or title of the enclosing product, image, or
  185.           subsystem.
  186.  
  187.      vvvveeeerrrrssssiiiioooonnnn _v_e_r_s_i_o_n-_n_u_m_b_e_r
  188.           A version number should be specified at the image level.  All
  189.           subsystems in that image inherit this version number.  Version
  190.           numbers normally increase with each new release of the product, so
  191.           that inst can properly identify upgrade subsystems.
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. ggggeeeennnnddddiiiisssstttt((((1111MMMM))))                                                        ggggeeeennnnddddiiiisssstttt((((1111MMMM))))
  203.  
  204.  
  205.  
  206.      eeeexxxxpppp _e_x_p_r_e_s_s_i_o_n
  207.           This attribute is placed at the subsystem level, and specifies which
  208.           files belong to that subsystem.  All files in the idb having one or
  209.           more group-tags that match _e_x_p_r_e_s_s_i_o_n are included in that subsystem
  210.           when the distribution is created.
  211.  
  212.           The group-tags in the idb are identifiers that categorize the files
  213.           is some convenient way (MAN or DSO for example).  The _e_x_p_r_e_s_s_i_o_n is
  214.           a boolean function written using these tags, and the C logical
  215.           operators ||, &&, ! and ().  For example:
  216.                exp MAN
  217.                exp EOE
  218.                exp "!noship && (EOE || BITMAPS || DSO)"
  219.  
  220.      oooorrrrddddeeeerrrr _o_r_d_e_r-_n_u_m_b_e_r
  221.           This attribute is placed at image level to control the order of
  222.           installations.  Images with lower order numbers are installed before
  223.           images with higher order numbers.
  224.  
  225.      ddddeeeeffffaaaauuuulllltttt
  226.      ddddeeeeffffaaaauuuulllltttt ((((_e_x_p_r_e_s_s_i_o_n))))
  227.           The subsystem is marked for default installation by inst.  If a
  228.           parenthesized _e_x_p_r_e_s_s_i_o_n is given, the subsystem is default only on
  229.           hardware platforms matching that expression.  See HARDWARE
  230.           EXPRESSIONS.
  231.  
  232.      rrrreeeeqqqquuuuiiiirrrreeeedddd
  233.      rrrreeeeqqqquuuuiiiirrrreeeedddd ((((_e_x_p_r_e_s_s_i_o_n))))
  234.           The subsystem is required for installation by inst.  Removal of the
  235.           subsystem is disallowed (upgrade is permitted).  Only subsystems
  236.           containing critical operating system functions should be marked as
  237.           required.  If a parenthesized _e_x_p_r_e_s_s_i_o_n is given, the subsystem is
  238.           default only on hardware platforms matching that expression.  See
  239.           HARDWARE EXPRESSIONS.
  240.  
  241.      mmmmiiiinnnniiiirrrrooooooootttt
  242.      mmmmiiiinnnniiiirrrrooooooootttt ((((_e_x_p_r_e_s_s_i_o_n))))
  243.           A miniroot installation is recommended (not required) or a reboot is
  244.           required to complete the installation.  If a parenthesized
  245.           _e_x_p_r_e_s_s_i_o_n is given, the subsystem is miniroot only on hardware
  246.           platforms matching that expression.  See HARDWARE EXPRESSIONS.
  247.  
  248.      aaaauuuuttttoooommmmiiiinnnniiiirrrrooooooootttt ((((_s_u_b_s_y_s_t_e_m-_r_a_n_g_e))))
  249.           A miniroot installation is required if any subsystem in the
  250.           specified _s_u_b_s_y_s_t_e_m-_r_a_n_g_e is currently installed.  This keyword
  251.           should be used whenever a "live" installation (in multi-user mode)
  252.           causes failures in or harmfully affects other user processes that
  253.           may be executing during the inst session.
  254.  
  255.      mmmmaaaacccchhhh """"_e_x_p_r_e_s_s_i_o_n""""
  256.           Specify that the enclosing product, image or subsystem is suitable
  257.           for installation only on certain hardware platforms matching the
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. ggggeeeennnnddddiiiisssstttt((((1111MMMM))))                                                        ggggeeeennnnddddiiiisssstttt((((1111MMMM))))
  269.  
  270.  
  271.  
  272.           _e_x_p_r_e_s_s_i_o_n.  Multiple mach expressions for a single product, image
  273.           or subsystem are OR'd.  See HARDWARE EXPRESSIONS.
  274.  
  275.      pppprrrreeeerrrreeeeqqqq ((((_s_u_b_s_y_s_t_e_m-_r_a_n_g_e ...))))
  276.           Installation of the subsystem also requires installation of the
  277.           prerequisite subsystems specified in the ranges.  If a subsystem has
  278.           multiple prereq rules, inst permits its installation if any one of
  279.           those rules is satisfied.  In the following example, subsystem s can
  280.           be installed if either:  both p.q.r (any version between 100-200,
  281.           inclusive) and x.y.z (any version greater than 400) are also
  282.           installed; or, a.b.c version 1000 is also installed:
  283.  
  284.           subsystem s
  285.  
  286.               prereq ( p.q.r 100 200
  287.                        x.y.z 400 maxint)
  288.               prereq ( a.b.c 1000 1000 )
  289.  
  290.           endsubsys
  291.  
  292.      rrrreeeeppppllllaaaacccceeeessss _s_u_b_s_y_s_t_e_m-_r_a_n_g_e
  293.      oooobbbbssssoooolllleeeetttteeeessss _s_u_b_s_y_s
  294.           Installation of the subsystem automatically causes the removal of
  295.           subsystems specified by the _r_a_n_g_e.  A subsystem may have multiple
  296.           replaces rules.  It is not necessary to supply a replacement rule
  297.           for other versions of subsystems by the same name (this is enforced
  298.           automatically be inst).
  299.  
  300.           Wildcards (*) are permitted in the subsystem identifier in
  301.           _s_u_b_s_y_s_t_e_m-_r_a_n_g_e.  If the mmmmaaaaxxxxiiiinnnntttt keyword is used as the high version
  302.           number, it will automatically be converted to one less than the
  303.           version number of the containing subsystem.  The shorthand oooobbbbssssoooolllleeeetttteeeessss
  304.           xxxx....yyyy....zzzz is interpreted as rrrreeeeppppllllaaaacccceeeessss xxxx....yyyy....zzzz 0000 mmmmaaaaxxxxiiiinnnntttt.  The following
  305.           rules are equivalent:
  306.  
  307.                image i
  308.                    version N
  309.                    subsystem s
  310.                       replaces x.y.z 0 N-1
  311.                       replaces x.y.z 0 maxint
  312.                       obsoletes x.y.z
  313.                    endsubsys
  314.                endimage
  315.  
  316.           During installation, a subsystem is labeled upgrade (downgrade) if
  317.           it replaces any other currently installed subsystem with a lesser
  318.           (greater) version number, even if the two subsystems have different
  319.           names.
  320.  
  321.           Whenever a subsystem is upgraded or downgraded, its patches are also
  322.           removed.  For this reason, a subsystem X need not declare
  323.           replacement rules for patches that follow subsystems replaced by X.
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. ggggeeeennnnddddiiiisssstttt((((1111MMMM))))                                                        ggggeeeennnnddddiiiisssstttt((((1111MMMM))))
  335.  
  336.  
  337.  
  338.      iiiinnnnccccoooommmmppppaaaatttt _s_u_b_s_y_s_t_e_m-_r_a_n_g_e
  339.           The subsystem is incompatible with the subsystem specified in the
  340.           _s_u_b_s_y_s_t_e_m-_r_a_n_g_e.  This rule should be used when two subsystems
  341.           cannot coexist on the same system.  A conflict will result if the
  342.           user attempts any installation that will result in both subsystems
  343.           being installed on the system.
  344.  
  345.      uuuuppppddddaaaatttteeeessss _s_u_b_s_y_s_t_e_m-_r_a_n_g_e
  346.           The subsystem automatically satisfies all prerequisite rules for any
  347.           subsystem X which has a prereq rule for subsystems specified in the
  348.           _s_u_b_s_y_s_t_e_m-_r_a_n_g_e.  This is useful for honoring the prerequisite rules
  349.           of previously released (hence unchangeable) products, when the
  350.           subsystem name is changed in the newer version.  The uuuuppppddddaaaatttteeeessss rule
  351.           does not imply rrrreeeeppppllllaaaacccceeeessss.
  352.  
  353.      ppppaaaattttcccchhhh
  354.           Declare the subsystem to be a patch that replaces files in another
  355.           subsystem.  A patch can also introduce new files.  When a patch is
  356.           installed, any previously installed versions of its files are
  357.           achived under $rbase/var/inst/patchbase.  When a patch is removed,
  358.           the original files are restored.  A patch subsystem must have a
  359.           ffffoooolllllllloooowwwwssss rule.  A patch may replace other patches, but may not
  360.           replace other non-patch subsystems.
  361.  
  362.      ffffoooolllllllloooowwwwssss _s_u_b_s_y_s_t_e_m-_r_a_n_g_e
  363.           Specify that a patch subsystem can only be installed if the base
  364.           subsystem (specified by _s_u_b_s_y_s_t_e_m-_r_a_n_g_e) is also installed.  A patch
  365.           may have multiple follows rules, provided that they all reference
  366.           the same base subsystem.  This allows disjoint version ranges to be
  367.           specified.  A follows rule can only be used within a ppppaaaattttcccchhhh
  368.           subsystem.
  369.  
  370.      ccccuuuuttttppppooooiiiinnnntttt _d_i_r_e_c_t_o_r_y
  371.           This attribute may only be used at the outermost product level (not
  372.           at the image or subsystem level).  It declares _d_i_r_e_c_t_o_r_y to be a
  373.           cutpoint that is owned by the enclosing product, and that it is safe
  374.           for inst to move the entire directory to an alternate drive when
  375.           disk space on the system drive is limited.
  376.  
  377.           When choosing cutpoints, identify the highest-level directories that
  378.           contain only files or sub-directories owned by your product.
  379.           Directories that consume large amounts of disk space are good
  380.           candidates.  Multiple cutpoints are permitted.  For example
  381.  
  382.                product gizmo
  383.                    cutpoint /usr/Gizmo
  384.                    ...
  385.                endproduct
  386.  
  387.           could be used if all files under /usr/Gizmo are owned by the gizmo
  388.           product.  The inst command
  389.  
  390.  
  391.  
  392.  
  393.                                                                         PPPPaaaaggggeeee 6666
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400. ggggeeeennnnddddiiiisssstttt((((1111MMMM))))                                                        ggggeeeennnnddddiiiisssstttt((((1111MMMM))))
  401.  
  402.  
  403.  
  404.                Inst> admin relocate gizmo /disk3
  405.  
  406.           will move the contents of /usr/Gizmo to /disk3/usr/Gizmo, and then
  407.           replace /usr/Gizmo with a symbolic link to ../disk3/usr/Gizmo.
  408.  
  409.           It is desirable, but not required, for a product to install all of
  410.           its files underneath cutpoints.  This property simplifies the task
  411.           of sharing software in a network environment using NFS mounts.  For
  412.           example if gizmo installs
  413.  
  414.                /usr/lib/X11/app-defaults/Gizmo
  415.  
  416.           then that file will not be moved when /usr/Gizmo is relocated.
  417.  
  418.           Before declaring a cutpoint directory, it is advisable to check for
  419.           self-containment.  Problems may arise with relative symbolic links
  420.           which follow a path up through the cutpoint itself, as in:
  421.  
  422.                    /usr/Gizmo/bin/ls -> ../../../bin/ls
  423.  
  424.           If the directory /usr/Gizmo is moved to a new location at a
  425.           different depth, such as /disk3/usr/Gizmo, then the path
  426.           /usr/Gizmo/bin/ls might no longer be valid.
  427.  
  428. IIIIDDDDBBBB FFFFIIIILLLLEEEE
  429.      The idb contains one line for each file or directory in an entire
  430.      product. The following optional attributes can be specified.
  431.  
  432.      ccccoooonnnnffffiiiigggg(((([update|suggest|noupdate]))))
  433.           Inst gives special treatment to configuration files if a version
  434.           already exists on disk and and either: the file has been altered
  435.           since it was last installed (modified); or the file is not present
  436.           in the installation history (foreign).
  437.  
  438.           During removals, inst does not remove modified config files.  During
  439.           installations, config files are installed normally, except when a
  440.           modified or foreign version already exists on disk.  In that case
  441.           the following variations occur:
  442.  
  443.           ccccoooonnnnffffiiiigggg(_u_p_d_a_t_e) before the file is installed, the modified/foreign
  444.           version is saved as file.O.
  445.  
  446.           ccccoooonnnnffffiiiigggg(_s_u_g_g_e_s_t) the file is installed under the name file.N.  The
  447.           modified/foreign version remains unchanged.
  448.  
  449.           ccccoooonnnnffffiiiigggg(_n_o_u_p_d_a_t_e) no new version of the file is installed.  The
  450.           modified/foreign version remains unchanged.
  451.  
  452.  
  453.      nnnnoooohhhhiiiisssstttt
  454.           After the file is installed, no record of it is kept in the
  455.           installation history.  Useful for scripts which delete themselves
  456.  
  457.  
  458.  
  459.                                                                         PPPPaaaaggggeeee 7777
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466. ggggeeeennnnddddiiiisssstttt((((1111MMMM))))                                                        ggggeeeennnnddddiiiisssstttt((((1111MMMM))))
  467.  
  468.  
  469.  
  470.           (for example during a postop), so that showfiles -B does not report
  471.           them as missing.
  472.  
  473.      ddddeeeellllhhhhiiiisssstttt
  474.           The file is completely ignored by inst.  Provided only for backwards
  475.           compatibility.
  476.  
  477.      ddddeeeevvvv((((_m_a_j _m_i_n))))
  478.           Specify the major and minor device numbers.  This attribute is
  479.           required if the file is a block or character special device.
  480.  
  481.      ssssyyyymmmmvvvvaaaallll((((_v_a_l_u_e))))
  482.           Specifies the link value.  Required when the file is a symbolic
  483.           link.
  484.  
  485.      mmmmaaaacccchhhh(_e_x_p_r)
  486.           Install the file only on hardware platforms matching _e_x_p_r (see
  487.           HARDWARE EXPRESSIONS below).
  488.  
  489.      eeeexxxxiiiittttoooopppp(_c_m_d)
  490.           If the file is installed, execute _c_m_d in a bourne shell, at the end
  491.           of the installation.  Inst sets the following variables in the
  492.           environment for exitops, preops, postops and removeops:
  493.  
  494.           rrrrbbbbaaaasssseeee is set to the root installation directory (see the -r option
  495.           of inst).  Exitops typically conduct all their activity relative to
  496.           $rbase.
  497.  
  498.           ddddiiiisssstttt is set to the location of the software distribution.
  499.  
  500.           iiiinnnnssssttttmmmmooooddddeeee is set to _n_o_r_m_a_l for miniroot installs into /root and live
  501.           installs into /, or _c_l_i_e_n_t for diskless client-tree installations
  502.           using client_inst(1M), or _p_r_o_t_o_t_y_p_e during all other installations.
  503.  
  504.           ddddiiiisssskkkklllleeeessssssss is set to _c_l_i_e_n_t during diskless installations using
  505.           client_inst(1M), or _s_h_a_r_e during diskless installations using
  506.           share_inst(1M), or _n_o_n_e for other, non-diskless installations.
  507.  
  508.           mmmmrrrr is set to _t_r_u_e during miniroot installations, set to _f_a_l_s_e
  509.           otherwise.
  510.  
  511.      pppprrrreeeeoooopppp(_c_m_d)
  512.           Like an exitop, except that Execute _c_m_d just before the file is
  513.           installed.
  514.  
  515.      ppppoooossssttttoooopppp(_c_m_d)
  516.           Execute _c_m_d just after the file is installed.
  517.  
  518.      rrrreeeemmmmoooovvvveeeeoooopppp(_c_m_d)
  519.           Execute _c_m_d if its subsystem is removed.  Removeops are executed at
  520.           the end of an install/remove run, along with any exitops.  Removeops
  521.           are only executed after strict subsystem removals, and not during an
  522.  
  523.  
  524.  
  525.                                                                         PPPPaaaaggggeeee 8888
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532. ggggeeeennnnddddiiiisssstttt((((1111MMMM))))                                                        ggggeeeennnnddddiiiisssstttt((((1111MMMM))))
  533.  
  534.  
  535.  
  536.           upgrade.  During an upgrade, any cleanup tasks should be performed
  537.           in the exitop of the upgrade product.
  538.  
  539.      sssshhhhaaaaddddoooowwww
  540.           Causes the file to be installed as file.shd during "live"
  541.           installations when rbase is /.  When the system is shutdown,
  542.           file.shd is renamed to file and only then are its exitops, preops
  543.           and postops executed.  During other installations (for example in
  544.           the miniroot) no special actions are taken.
  545.  
  546.      nnnnoooossssttttrrrriiiipppp
  547.           Do not invoke strip(1M) on the file, so that its symbol table is
  548.           preserved.
  549.  
  550.      ssssttttrrrriiiippppddddssssoooo
  551.           Invoke strip(1M) on the file using the -f (force) option.  Useful
  552.           for dynamic shared objects.  See the strip(1M) manual page.
  553.  
  554.      nnnnoooorrrrqqqqssss
  555.           Suppress requickstarting for the file after it is installed.
  556.  
  557.      ttttaaaagggg(_v_a_l_u_e)
  558.           At build time, invoke tag(1) with an argument of _v_a_l_u_e on the file.
  559.           value may be a decimal or hex number.  The tag idb keyword is not
  560.           copied to the final idb file since it is of no use at install time.
  561.  
  562. HHHHAAAARRRRDDDDWWWWAAAARRRREEEE EEEEXXXXPPPPRRRREEEESSSSSSSSIIIIOOOONNNNSSSS
  563.      Hardware expressions, or machtags, are boolean expressions evaluated at
  564.      installation time against the current architecture and IRIX version
  565.      number of the system on which the installation occurs, or against the
  566.      machtag values given on the command line when inst -m is used.
  567.  
  568.      Hardware expressions are used in the spec file to restrict installation
  569.      of a subsystem, image or entire product, to specific hardware platforms
  570.      or IRIX releases, and to mark subsystems as default, miniroot, or
  571.      required only for specific platforms.
  572.  
  573.      Hardware expressions in the idb file make it possible to install
  574.      different versions of the same file (including no version at all),
  575.      depending on the target platform.  Each version of the file appears on
  576.      its own idb line.  At most one version of a file can be installed in a
  577.      single subsystem.
  578.  
  579.      When multiple versions of a file are specified, inst installs the one
  580.      whose machtag matches the target platform.  If no matching machtag is
  581.      found, inst installs the version that has no machtag (if specified).
  582.  
  583.      There are two distinct syntaxes for hardware expressions.  The two
  584.      syntaxes may not be intermixed.  In both forms the construct attr=value
  585.      may not be reversed, for example IP22=CPUBOARD does not work.  If the
  586.      leading attr= is omitted, attr is assumed to be CPUBOARD.
  587.  
  588.  
  589.  
  590.  
  591.                                                                         PPPPaaaaggggeeee 9999
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598. ggggeeeennnnddddiiiisssstttt((((1111MMMM))))                                                        ggggeeeennnnddddiiiisssstttt((((1111MMMM))))
  599.  
  600.  
  601.  
  602.      The valid attributes are CPUBOARD, CPUARCH, GFXBOARD, SUBGR, VIDEO, MODE,
  603.      TARGOS and DISTOS.  During an inst session the variable TARGOS refers to
  604.      the currently installed IRIX release, as displayed by the command
  605.      "showprods -n eoe*.sw.unix".  DISTOS is the version of eoe*.sw.unix on
  606.      the current software distribution.  These variables will have the value
  607.      -1 if eoe*sw.unix is not present.
  608.  
  609.      FFFFiiiirrrrsssstttt ffffoooorrrrmmmm
  610.           The first form is a whitespace-separated list of attribute/value
  611.           expressions written as:  attr=value attr=value ...
  612.           An expression evalues to true if there is at least one match for
  613.           every unique attribute referenced in the expression.  For example
  614.           "CPUBOARD=IP22 GFXBOARD=EXPRESS GFXBOARD=NEWPRESS" evalutes to true
  615.           if the cpu is IP22 and the graphics board is either EXPRESS or
  616.           NEWPRESS.
  617.  
  618.      SSSSeeeeccccoooonnnndddd ffffoooorrrrmmmm
  619.           The second form is a C-like syntax in which attr=value pairs can be
  620.           combined with the logical operators &&, ||, and !.  The relational
  621.           operators <, <=, !=, >, > may be used instead of =.  Grouping with
  622.           parentheses is permitted.  Note:  whitespace does not imply logical
  623.           AND as it does in the first form.  If any of the operators except =
  624.           are used, then the entire expression must be written in the second
  625.           form.  The first-form example above could be rewritten as
  626.           "CPUBOARD=IP22 && GFXBOARD=EXPRESS || GFXBOARD=NEWPRESS".
  627.  
  628. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  629.      distcp(1M), inst(1M), install(1), showprods(1M), swpkg(1M), versions(1M).
  630.  
  631.      _S_o_f_t_w_a_r_e _P_a_c_k_a_g_e_r _U_s_e_r'_s _G_u_i_d_e.
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.                                                                        PPPPaaaaggggeeee 11110000
  658.  
  659.  
  660.  
  661.